package com.neusoft.neuiotms.dcom.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.web.support.Searchable;
import com.neusoft.neuiotms.dcom.bean.ProjectUserBean;
import com.neusoft.neuiotms.dcom.dto.InstitutionsDTO;
import com.neusoft.neuiotms.dcom.dto.ResidentChangeLogDTO;

public interface InstitutionsService {

    List<InstitutionsDTO> index(Searchable searchable);

    Page<InstitutionsDTO> search(Pageable pageable, Searchable searchable);

    InstitutionsDTO create(InstitutionsDTO dto);

    InstitutionsDTO update(Long id, InstitutionsDTO dto);

    InstitutionsDTO details(Long id);

    void delete(Long id);

    ProjectUserBean getMyInstitutions(UserBean user);

    List<InstitutionsDTO> getPermInstitutions(UserBean user);

    List<ResidentChangeLogDTO> getResidentChangeLogs(Long institutionId);

}
